import request from '@/utils/request'

// AI智能助手相关接口

/**
 * 获取AI编程提示
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.questionType - 问题类型 (hint, analysis, optimization, debug)
 * @param {string} data.userCode - 用户代码
 * @param {string} data.language - 编程语言
 */
export function getAiHint(data) {
  return request({
    url: '/system/ai/hint',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI代码分析
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userCode - 用户代码
 * @param {string} data.language - 编程语言
 */
export function getAiAnalysis(data) {
  return request({
    url: '/system/ai/analysis',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI代码优化建议
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userCode - 用户代码
 * @param {string} data.language - 编程语言
 * @param {string} data.optimizationType - 优化类型 (performance, readability, memory)
 */
export function getAiOptimization(data) {
  return request({
    url: '/system/ai/optimization',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI调试帮助
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userCode - 用户代码
 * @param {string} data.language - 编程语言
 * @param {string} data.errorMessage - 错误信息
 * @param {string} data.testCase - 测试用例
 */
export function getAiDebugHelp(data) {
  return request({
    url: '/system/ai/debug',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI算法解释
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.algorithmType - 算法类型
 */
export function getAiAlgorithmExplanation(data) {
  return request({
    url: '/system/ai/algorithm',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI学习建议
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userLevel - 用户水平
 * @param {string} data.learningGoal - 学习目标
 */
export function getAiLearningAdvice(data) {
  return request({
    url: '/system/ai/learning-advice',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI代码评分
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userCode - 用户代码
 * @param {string} data.language - 编程语言
 */
export function getAiCodeScore(data) {
  return request({
    url: '/system/ai/code-score',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI相似题目推荐
 * @param {Object} data - 请求参数
 * @param {string} data.problemId - 题目ID
 * @param {string} data.userLevel - 用户水平
 * @param {number} data.limit - 推荐数量限制
 */
export function getAiSimilarProblems(data) {
  return request({
    url: '/system/ai/similar-problems',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI编程知识图谱
 * @param {Object} data - 请求参数
 * @param {string} data.topic - 主题
 * @param {string} data.depth - 深度
 */
export function getAiKnowledgeGraph(data) {
  return request({
    url: '/system/ai/knowledge-graph',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI编程挑战
 * @param {Object} data - 请求参数
 * @param {string} data.userLevel - 用户水平
 * @param {string} data.category - 题目类别
 * @param {number} data.count - 挑战数量
 */
export function getAiProgrammingChallenges(data) {
  return request({
    url: '/system/ai/programming-challenges',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI编程历史记录
 * @param {Object} data - 请求参数
 * @param {string} data.userId - 用户ID
 * @param {string} data.problemId - 题目ID
 * @param {number} data.pageNum - 页码
 * @param {number} data.pageSize - 每页大小
 */
export function getAiHistory(data) {
  return request({
    url: '/system/ai/history',
    method: 'get',
    params: data
  })
}

/**
 * 保存AI对话记录
 * @param {Object} data - 请求参数
 * @param {string} data.userId - 用户ID
 * @param {string} data.problemId - 题目ID
 * @param {string} data.question - 用户问题
 * @param {string} data.answer - AI回答
 * @param {string} data.questionType - 问题类型
 */
export function saveAiConversation(data) {
  return request({
    url: '/system/ai/conversation',
    method: 'post',
    data: data
  })
}

/**
 * 获取AI助手配置
 * @param {Object} data - 请求参数
 * @param {string} data.userId - 用户ID
 */
export function getAiAssistantConfig(data) {
  return request({
    url: '/system/ai/config',
    method: 'get',
    params: data
  })
}

/**
 * 更新AI助手配置
 * @param {Object} data - 请求参数
 * @param {string} data.userId - 用户ID
 * @param {Object} data.config - 配置信息
 */
export function updateAiAssistantConfig(data) {
  return request({
    url: '/system/ai/config',
    method: 'put',
    data: data
  })
}

/**
 * 获取AI助手统计信息
 * @param {Object} data - 请求参数
 * @param {string} data.userId - 用户ID
 * @param {string} data.timeRange - 时间范围
 */
export function getAiAssistantStats(data) {
  return request({
    url: '/system/ai/stats',
    method: 'get',
    params: data
  })
} 